package com.xgry.bpm.api.base.menu.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xgry.bpm.api.base.menu.entity.TBMenu;
import com.xgry.bpm.api.base.menu.form.TBMenuForm;
import com.xgry.bpm.api.base.menu.vo.TBMenuVO;

import java.util.List;

/**
 * <p>
 * TBMenu服务类
 * </p>
 *
 * @author admin
 * @since 2020-07-14
 */
public interface TBMenuService extends IService<TBMenu> {
        /**
        * 保存信息对象
        * @param record 信息对象
        * @return 影响记录数
        */
        int save(TBMenuForm record);

        /**
        * 根据主键更新信息对象
        * @param record 信息对象
        * @return 影响记录数
        */
        int updateById(TBMenuForm record);

        /**
        * 根据主键删除信息对象
        * 逻辑删除,字段改为删除态
        * @param id 主键
        * @return 影响记录数
        */
        int deleteById(String id);

        /**
        * 根据主键查询信息对象
        * @param id 主键
        * @return 信息对象
        */
    TBMenuVO selectById(String id);

        /**
        * 根据主键查询信息对象
        * @param record 查询请求条件
        * @return 信息列表
        */
        List<TBMenuVO> selectAll(TBMenuForm record);

        /**
        * 分页查询信息对象
        * @param record 查询请求条件
        * @return 信息列表
        */
        IPage<TBMenuVO> selectPage(TBMenuForm record);

        /**
        * 分页查询信息对象
        *
        * @param page 分页条件   queryWrapper 查询条件
        * @return 信息列表
        */
        IPage<TBMenu> getPage(IPage<TBMenu> page,QueryWrapper<TBMenu> queryWrapper);


        TBMenu findMenuByName(String modulerName);

    TBMenu findMenuByCode(String modulerCode);

    TBMenu moveUpMenu(Integer MenuId);

    TBMenu moveDownMenu(Integer menuId);
}

